#include <stdio.h>
#include <stdlib.h>
#include "piece.h"
#include "coupfou.h"
#include "echiquier.h"


void coupfou (int echiquier[8][8], struct piece piec, int tabretourpiece[30][2],int &nbrecoup)
/* idem a coupdame uniquement avec les déplacement diagonaux*/
 {
     int diaghautdroite,diabasgauche,diaghautgauche,diagbasdroite;
     diaghautdroite=diabasgauche=diaghautgauche=diagbasdroite=1;


 if (echiquier[piec.ligne][piec.colonne]>0)
 {


     while (echiquier[piec.ligne+diaghautdroite][piec.colonne+diaghautdroite]<=0 && piec.colonne+diaghautdroite < 8 && piec.colonne >= 0 && piec.ligne+diaghautdroite <8 && piec.ligne>= 0)
            {
                tabretourpiece[diaghautdroite-1][0]=piec.ligne+diaghautdroite;
                tabretourpiece[diaghautdroite-1][1]=piec.colonne+diaghautdroite;
                diaghautdroite++;
                if (echiquier[piec.ligne+diaghautdroite-1][piec.colonne+diaghautdroite-1]<0)
                     {
                         break;
                     }

            }
            diaghautdroite--;
            while (echiquier[piec.ligne-diabasgauche][piec.colonne-diabasgauche]<=0 && piec.colonne < 8 && piec.colonne-diabasgauche >= 0 && piec.ligne<8 && piec.ligne-diabasgauche>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche-1][0]=piec.ligne-diabasgauche;
                tabretourpiece[diaghautdroite+diabasgauche-1][1]=piec.colonne-diabasgauche;
                diabasgauche++;
                if (echiquier[piec.ligne-diabasgauche+1][piec.colonne-diabasgauche+1]<0)
                     {
                         break;
                     }

            }
            diabasgauche--;
             while (echiquier[piec.ligne+diaghautgauche][piec.colonne-diaghautgauche]<=0 && piec.colonne < 8 && piec.colonne-diaghautgauche >= 0 && piec.ligne+diaghautgauche <8 && piec.ligne>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche-1][0]=piec.ligne+diaghautgauche;
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche-1][1]=piec.colonne-diaghautgauche;
                diaghautgauche++;
                if (echiquier[piec.ligne+diaghautgauche-1][piec.colonne-diaghautgauche+1]<0)
                     {
                         break;
                     }


            }
            diaghautgauche--;
             while (echiquier[piec.ligne-diagbasdroite][piec.colonne+diagbasdroite]<=0 && piec.colonne+diagbasdroite < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne-diagbasdroite>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche+diagbasdroite-1][0]=piec.ligne-diagbasdroite;
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche+diagbasdroite-1][1]=piec.colonne+diagbasdroite;
                diagbasdroite++;
                if (echiquier[piec.ligne-diagbasdroite+1][piec.colonne+diagbasdroite-1]<0)
                     {
                         break;
                     }

            }
            diagbasdroite--;

 }

 else
 {
      while (echiquier[piec.ligne+diaghautdroite][piec.colonne+diaghautdroite]>=0 && piec.colonne+diaghautdroite < 8 && piec.colonne >= 0 && piec.ligne+diaghautdroite <8 && piec.ligne>= 0)
            {
                tabretourpiece[diaghautdroite-1][0]=piec.ligne+diaghautdroite;
                tabretourpiece[diaghautdroite-1][1]=piec.colonne+diaghautdroite;
                diaghautdroite++;
                if (echiquier[piec.ligne+diaghautdroite-1][piec.colonne+diaghautdroite-1]>0)
                     {
                         break;
                     }

            }
            diaghautdroite--;
            while (echiquier[piec.ligne-diabasgauche][piec.colonne-diabasgauche]>=0 && piec.colonne < 8 && piec.colonne-diabasgauche >= 0 && piec.ligne<8 && piec.ligne-diabasgauche>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche-1][0]=piec.ligne-diabasgauche;
                tabretourpiece[diaghautdroite+diabasgauche-1][1]=piec.colonne-diabasgauche;
                diabasgauche++;
                if (echiquier[piec.ligne-diabasgauche+1][piec.colonne-diabasgauche+1]>0)
                     {
                         break;
                     }

            }
            diabasgauche--;
             while (echiquier[piec.ligne+diaghautgauche][piec.colonne-diaghautgauche]>=0 && piec.colonne < 8 && piec.colonne-diaghautgauche >= 0 && piec.ligne+diaghautgauche <8 && piec.ligne>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche-1][0]=piec.ligne+diaghautgauche;
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche-1][1]=piec.colonne-diaghautgauche;
                diaghautgauche++;
                if (echiquier[piec.ligne+diaghautgauche-1][piec.colonne-diaghautgauche+1]>0)
                     {
                         break;
                     }


            }
            diaghautgauche--;
             while (echiquier[piec.ligne-diagbasdroite][piec.colonne+diagbasdroite]>=0 && piec.colonne+diagbasdroite < 8 && piec.colonne >= 0 && piec.ligne<8 && piec.ligne-diagbasdroite>= 0)
            {
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche+diagbasdroite-1][0]=piec.ligne-diagbasdroite;
                tabretourpiece[diaghautdroite+diabasgauche+diaghautgauche+diagbasdroite-1][1]=piec.colonne+diagbasdroite;
                diagbasdroite++;
                if (echiquier[piec.ligne-diagbasdroite+1][piec.colonne+diagbasdroite-1]>0)
                     {
                         break;
                     }

            }
            diagbasdroite--;
 }


            nbrecoup=diabasgauche+diaghautgauche+diagbasdroite+diaghautdroite;
}
